package cn.sccdlg.spring5.tx.service;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * @author RaoShuang
 * @emil 991207823@qq.com
 * @date 2020/10/21 23:24
 * 使用Junit单元测试：测试我们的基于注解的事务配置
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "classpath:bean4.xml")
public class IAccountServiceTest2 {

    @Autowired
    private  IAccountService as;

    /**
     * 用于测试发生异常时，有事务控制与没有事务控制的差别
     * 有事务控制，异常发生时数据的一致性会保持完整（数据记录和执行操作前没有变化，操作没有被提交），
     * 没有事务控制，异常发生时数据一致性会被破坏（该增加的记录没有变化，减少的记录却实实在在减少了）。
     */
    @Test
    public  void testTransfer(){
        as.transfer("aaa","bbb",100f);

    }
}